<ui:composition template="/WEB-INF/templates/layout.xhtml"
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui"
>
	<ui:define name="contentTitle">What's new in OmniFaces 1.3?</ui:define>

	<ui:define name="content">
		<h3>Added in OmniFaces 1.3</h3>
		<ul>
			<li><h:link value="Update specific UIData rows and columns programmatically" outcome="showcase/utils/Ajax" /></li>
			<li><h:link value="Enable restorable view" outcome="showcase/taghandlers/enableRestorableView" /></li>
		</ul>
		
		<p:separator />
		
		<h2>What's new in OmniFaces 1.2?</h2>	
		<h3>Added in OmniFaces 1.2</h3>
		<ul>
			<li><h:link value="Character encoding filter" outcome="showcase/filters/CharacterEncodingFilter" /></li>
			<li><h:link value="Resource handler which replaces resource URLs by CDN URLs" outcome="showcase/resourcehandlers/CDNResourceHandler" /></li>
			<li><h:link value="Ignore validation failures on submit" outcome="showcase/taghandlers/ignoreValidationFailed" /></li>
			<li><h:link value="Store outputFormat result in a variable" outcome="showcase/components/outputFormat" /></li>
			<li><h:link value="Several of:format() shortcut EL functions to format strings in EL" outcome="showcase/functions/Strings" /></li>
			<li><h:link value="New Ajax utility class to ease programmatically updating components, executing callback scripts and injecting variables in JS scope" outcome="showcase/utils/Ajax" /></li>
			<li><h:link value="New OmniPartialViewContext for the Ajax utility class, better exception handling during rendering of ajax response by FullAjaxExceptionHandler and the fix of no-feedback problem when the view is expired during ajax request on a restricted page" outcome="showcase/contexts/OmniPartialViewContext" /></li>
			<li>New multi field validators which validates if <h:link value="ONLY ONE" outcome="showcase/validators/validateOne" /> or <h:link value="ONE or NONE" outcome="showcase/validators/validateOneOrNone" /> of the given inputs has been filled out</li>
			<li><h:link value="New of:formatCurrency() and of:formatNumber() EL functions" outcome="showcase/functions/Numbers" /></li>
			<li><h:link value="New generic enum converter for use in UISelectMany components with List&lt;Enum&gt;" outcome="showcase/converters/GenericEnumConverter" /></li>
			<li>Some new utility methods in <h:link value="Faces" outcome="showcase/utils/Faces" /> and <h:link value="Components" outcome="showcase/utils/Components" /></li>
		</ul>
		<h3>Changed in OmniFaces 1.2</h3>
		<ul>
			<li><h:link value="Support to render JS/CSS inline by CombinedResourceHandler" outcome="showcase/resourcehandlers/CombinedResourceHandler" /></li>
			<li><h:link value="Changed generation of combined resource IDs by CombinedResourceHandler so that it's now reversible" outcome="showcase/resourcehandlers/CombinedResourceHandler" /></li>
			<li><h:link value="Improved rendered attribute of o:treeNodeItem so that it can now also see o:tree var/varNode" outcome="showcase/components/tree" /></li>
			<li><h:link value="Improved components attribute of multi field validators so that it's resolved relative to parent UINamingContainer instead of to parent UIForm" outcome="showcase/validators/validateAll" /></li>
			<li><h:link value="Improved multi field validators to recognize UISelectBoolean components as well" outcome="showcase/validators/validateAll" /></li>
			<li><h:link value="Improved FullAjaxExceptionHandler to better handle exceptions during ajax render response phase" outcome="showcase/exceptionhandlers/FullAjaxExceptionHandler" /></li>
			<li><h:link value="Improved o:highlight to apply style class on associated labels as well" outcome="showcase/components/highlight" /></li>
		</ul>
		<h3>Bugfixed in OmniFaces 1.2</h3>
		<ul>
			<li><h:link value="Serialization and state saving issues in o:cache" outcome="showcase/components/cache" /></li>
			<li><h:link value="Broken behaviour in MyFaces when using null values in SelectItemsConverter" outcome="showcase/converters/SelectItemsConverter" /></li>
			<li><h:link value="Removed accidently introduced Servlet 3.0 dependency in GzipResponseFilter and improved recognition of non-gzippable responses (content range, etc)" outcome="showcase/filters/GzipResponseFilter" /></li>
			<li><h:link value="Broken behavior of ResetInputAjaxActionListener when both PrimeFaces and RichFaces is used in same webapp" outcome="showcase/eventlisteners/ResetInputAjaxActionListener" /></li>
		</ul>
	
		<p:separator />
	
		<h2>What's new in OmniFaces 1.1?</h2>	
		<h3>Added in OmniFaces 1.1</h3>
		<ul>
			<li><h:link value="Rendering specific components by a GET request parameter" outcome="showcase/components/componentIdParam" /></li>
			<li><h:link value="Form with support to include view parameters in action URL" outcome="showcase/components/form" /></li>
			<li><h:link value="Caching for page fragments with support for scopes, time to live and LRU eviction" outcome="showcase/components/cache" /></li>
			<li><h:link value="f:event hook for pre and post invoke action phase" outcome="showcase/eventlisteners/InvokeActionEventListener" /></li>
			<li><h:link value="GZIP compression filter for HTTP responses" outcome="showcase/filters/GzipResponseFilter" /></li>
			<li><h:link value="of:capitalize() function to capitalize a string" outcome="showcase/functions/Strings" /></li>
			<li><h:link value="HTML5 render kit which adds support for several HTML5 specific attributes to UIForm and UIInput components" outcome="showcase/renderkits/Html5RenderKit" /></li>
			<li><h:link value="Importing constant values into EL scope" outcome="showcase/taghandlers/importConstants" /></li>
			<li><h:link value="New Messages builder" outcome="showcase/utils/Messages" /></li>
			<li><h:link value="A whole bunch of new utility methods in Faces" outcome="showcase/utils/Faces" /></li>
			<li><h:link value="A new builder in Messages which also allows you to set the message detail" outcome="showcase/utils/Messages" /></li>
			<li><h:link value="New validator which validates if ALL of the given inputs have been filled out" outcome="showcase/validators/validateAll" /></li>
			<li>Maven integration</li>
		</ul>
		<h3>Changed in OmniFaces 1.1</h3>
		<ul>
			<li><h:link value="Support for action components inside o:tree and new TreeModel#remove() method" outcome="showcase/components/tree" /></li>
			<li><h:link value="Support for web-fragment.xml in FullAjaxExceptionHandler" outcome="showcase/exceptionhandlers/FullAjaxExceptionHandler" /></li>
			<li><h:link value="Support to exclude or suppress specific resources in CombinedResourceHandler" outcome="showcase/resourcehandlers/CombinedResourceHandler" /></li>
			<li><h:link value="Support for specific ordering type inside o:validateOrder" outcome="showcase/validators/validateOrder" /></li>
		</ul>
		<h3>Bugfixed in OmniFaces 1.1</h3>
		<ul>
			<li><h:link value="Broken behaviour inside UIData components in ResetInputAjaxActionListener" outcome="showcase/eventlisteners/ResetInputAjaxActionListener" /></li>
			<li><h:link value="Incorrect behaviour on synchronous postbacks and NPE on inline scripts in CombinedResourceHandler" outcome="showcase/resourcehandlers/CombinedResourceHandler" /></li>
		</ul>

		<p:separator />
	
		<h2>What's available in OmniFaces 1.0?</h2>	
		<h3>Features already available in initial OmniFaces 1.0 release</h3>
		<ul>
			<li><h:link value="Conditional comment rendering for IE" outcome="showcase/components/conditionalComment" /></li>
			<li><h:link value="Highlighting fields that failed validation" outcome="showcase/components/highlight" /></li>
			<li><h:link value="Executing scripts on load of every (ajax) response" outcome="showcase/components/onloadScript" /></li>
			<li><h:link value="OutputLabel automatically setting label of associated input component" outcome="showcase/components/outputLabel" /></li>
			<li><h:link value="Include Servlets and JSP pages in Facelets" outcome="showcase/components/resourceInclude" /></li>
			<li><h:link value="Tree with full custom markup per level (useable for various recursive use cases)" outcome="showcase/components/tree" /></li>
			<li><h:link value="Stateless view parameter" outcome="showcase/components/viewParam" /></li>
			<li><h:link value="Automatic conversion of model objects in drop-downs and other select components" outcome="showcase/converters/SelectItemsConverter" /></li>
			<li><h:link value="Simplified PhaseListener requiring less boiler plate" outcome="showcase/eventlisteners/DefaultPhaseListener" /></li>
			<li><h:link value="Reset for input fields making them always updateable via ajax" outcome="showcase/eventlisteners/ResetInputAjaxActionListener" /></li>
			<li><h:link value="Ajax aware exception handler" outcome="showcase/exceptionhandlers/FullAjaxExceptionHandler" /></li>
			<li><h:link value="Extensionless URLs without need to register individual pages" outcome="showcase/facesviews/ExtensionlessURLs" /></li>
			<li><h:link value="Proper 404 for FacesFileNotFoundException" outcome="showcase/filters/FacesExceptionFilter" /></li>
			<li><h:link value="HttpFilter convenience class as analogy to HttpServlet" outcome="showcase/filters/HttpFilter" /></li>
			<li>Collections of EL functions for dealing with <h:link value="arrays" outcome="showcase/functions/Arrays" />, <h:link value="conversion" outcome="showcase/functions/Converters" />, <h:link value="dates" outcome="showcase/functions/Dates" /> and <h:link value="strings" outcome="showcase/functions/Strings" /></li>
			<li>Convenience managed beans for the <h:link value="current time" outcome="showcase/managedbeans/now" /> and <h:link value="server startup time" outcome="showcase/managedbeans/startup" /></li>
			<li><h:link value="Combining separate scripts and stylesheets to reduce HTTP requests" outcome="showcase/resourcehandlers/CombinedResourceHandler" /></li>
			<li>Render-time evaluation for <h:link value="f:converter" outcome="showcase/taghandlers/converter" /> and <h:link value="f:validator" outcome="showcase/taghandlers/validator" /> attributes</li>
			<li><h:link value="Passing a method expression into Facelets tag" outcome="showcase/taghandlers/methodParam" /></li>
			<li>Collection of Java methods for dealing with <h:link value="components" outcome="showcase/utils/Components" />, <h:link value="events" outcome="showcase/utils/Events" />, <h:link value="exceptions" outcome="showcase/utils/Exceptions" />, <h:link value="messages" outcome="showcase/utils/Messages" /> and <h:link value="JSF in general" outcome="showcase/utils/Faces" /></li>
			<li><h:link value="Checkbox with required attribute that works intuitively" outcome="showcase/validators/RequiredCheckboxValidator" /></li>
			<li>Multi-field validators, for "<h:link value="all or none" outcome="showcase/validators/validateAllOrNone" />", "<h:link value="all equal" outcome="showcase/validators/validateEqual" />", "<h:link value="one or more" outcome="showcase/validators/validateOneOrMore" />", "<h:link value="all in order" outcome="showcase/validators/validateOrder" />" and "<h:link value="all unique" outcome="showcase/validators/validateUnique" />" validations</li>
		</ul>
	</ui:define>
</ui:composition>